Шаг 18 - Подробности реализации.

Чтобы проверить, зарегистрировано ли расширение файла:
В разделе HKCR найдите параметр, имя которого совпадает с расширением из 3 или более букв, например, ".txt". Если параметра с таким именем не существует, необходимо зарегистрировать его (см. ниже).

Чтобы зарегистрировать новые типы файлов:
Создайте тип файла в разделе HKCR. Тип файла – это уникальный идентификатор для всех файлов с заданным расширением. Например, «txtfile » - это тип файлов с расширением .txt. Помните, что на один и тот же тип файла могут указывать несколько расширений. Например, расширения «.txt» и «.log» указывают на один тип файла - «txtfile.» По умолчанию для типа файла используется «заменяющее имя», которое отображается в Проводнике. Например, расширения, которые указывают на параметр «txtfile», имеют заменяющее имя - Текстовый документ». В разделе HKCR создайте расширение для файла, состоящее из трех или более символов. Рекомендуется создавать расширения, состоящие из 4 или 5 символов, чтобы избежать конфликтов между типами файлов и легче идентифицировать файлы. Затем укажите значение по умолчанию для расширения файла, указывающего на только что созданный тип файла. Например, для ".txt" по умолчанию используется тип файла "txtfile".

Чтобы зарегистрировать пиктограмму для типа файла:
В параметре типа файла создайте параметр 'DefaultIcon' в форме REG_SZ или REG_EXPAND_SZ и назначьте для него пиктограмму. Например, для "txtfile" значением будет "%SystemRoot%\system32\shell32.dll,-152", что означает "использовать 152-ую пиктограмму в shell32.dll ".

Чтобы назначить файлу действие «Не открывать»:
В разделе типа файла укажите значение «Не открывать» Reg_SZ. Затем в значение можно добавить произвольный текст, если Вы хотите настроить сообщение. В качестве примера см. параметр «ocxfile» в разделе HKCR.

Пример: Структура реестра для связи расширения файла «.txt» с типом файла «Txtfile»:

HKEY_CLASSES_ROOT\.txt 
		(default) = "txtfile"

HKEY_CLASSES_ROOT\txtfile
			\DefaultIcon
				(default) = %SystemRoot%\system32\shell32.dll,-152
			\shell\open\command
				(default) = %SystemRoot%\system32\NOTEPAD.EXE %1
Hosted by uCoz